package com.mfin.bs.mgr.interfaces;

import com.mfin.enumeration.LoanType;
import com.mfin.persistence.IPersistenceGovernor;
import com.mfin.vo.finance.FinanceVO;
import com.mfin.vo.loan.FinanceLoanVO;
import com.mfin.vo.loan.LoanApplicationVO;
import com.mfin.vo.loan.LoanMasterVO;
import com.mfin.vo.loan.LoanPreferenceVO;

public interface ILoanMasterManager {

	public IPersistenceGovernor getPersistenceGovernor();
	
	public void setPersistenceGovernor(IPersistenceGovernor persistenceGovernor);

	public FinanceLoanVO createLoan(FinanceVO financeVO, LoanApplicationVO loanApplicationVO);

	public LoanPreferenceVO getLoanPreference(FinanceVO financeVO, LoanType loanType);

	public LoanType[] getAllLoanTypes();

	public LoanMasterVO addLoanMaster(LoanMasterVO loanMasterVO);

	public void addFinanceLoanPreference(FinanceVO financeVO,
			LoanPreferenceVO loanPreferenceVO);

	public void updateFinanceLoanPreference(LoanPreferenceVO loanPreferenceVO);

}
